The present invention relates to the field of communications and more particularly, to receiving methods and systems.
Digital wireless communications systems use equalization to compensate for intersymbol interference (ISI) resulting from time dispersion and/or delay spread in a radio channel. Typically, a non-linear equalizer, such as a Maximum Likelihood Sequence Estimation (MLSE) equalizer (also known as a Viterbi equalizer), can be used to provide coherent demodulation, and thus compensate for inter-symbol interference (ISI), in such digital wireless communications systems. An MLSE equalizer considers various hypothesis for a transmitted symbol sequence, and with a model of the dispersive radio channel, determines which hypothesis best fits the received samples. This determination can be realized using the Viterbi algorithm. The MLSE equalization technique is discussed, for example by J. C. Proakis in Digital Communications, McGraw-Hill (1995) pages 589-593. An MLSE equalizer, however, may be difficult to implement.
With an MLSE equalizer, transmitted symbols s(n) can take values from an 8PSK constellation:             {              ⅇ                  j2πk          /          8                    }                      k        =        0            ⁢              xe2x80x83                    k      =      7        ,
and can be transmitted over a radio channel to a radio receiver. At the receiver, the received signal can be filtered, amplified, and mixed down using I and Q carriers, then sampled once every symbol period T, providing a received signal stream r(n). In this example, the channel can include L rays such that:                               r          ⁡                      (            n            )                          =                                            ∑                              i                =                0                                            L                -                1                                      ⁢                          xe2x80x83                        ⁢                                          h                ⁡                                  (                  i                  )                                            ⁢                              s                ⁡                                  (                                      n                    -                    i                                    )                                                              +                                    w              ⁡                              (                n                )                                      .                                              (        1        )            
In this equation, h(i) denotes a complex-valued channel tap and w(n) is additive noise or interference.
Using N to denote the number of transmitted 8PSK symbols, there will be 8N possible transmitted sequences of length N. The Viterbi algorithm/equalizer provides a way to determine a best sequence by traveling on a trellis. The trellis has N stages, denoted by n=0, n=1, n=2, . . . , n=Nxe2x88x921. The states in the trellis of the Viterbi algorithm at stage nxe2x88x921 are vectors of the form X(nxe2x88x921)=[s (nxe2x88x921), . . . , s(n-L+1)], i.e. the last (Lxe2x88x921) most recently received symbols at time nxe2x88x921. Since each element in the state vector has 8 possible values, the Viterbi trellis has 8Lxe2x88x921 different possible (hypothetical) values, and the Viterbi trellis has 8Lxe2x88x921 different possible states at each stage. Associated with each state at time nxe2x88x921, there will be a stored path history including an n-tuple of 8PSK symbols from time xe2x80x9c0xe2x80x9d to time xe2x80x9cnxe2x88x921xe2x80x9d, and an accumulated (total) path metric M(X(nxe2x88x921)). At the n-th stage of the trellis, the branch metric corresponding to the state transition from the previous state, X(nxe2x88x921), to the current state, X(n), is computed using:                               dM          ⁡                      (                                          X                ⁡                                  (                                      n                    -                    1                                    )                                            ,                              X                ⁡                                  (                  n                  )                                                      )                          =                                            "LeftBracketingBar"                                                r                  ⁡                                      (                    n                    )                                                  -                                                      ∑                                          i                      =                      0                                                              L                      -                      1                                                        ⁢                                      xe2x80x83                                    ⁢                                                            h                      ⁡                                              (                        i                        )                                                              ⁢                                          s                      ⁡                                              (                                                  n                          -                          i                                                )                                                                                                        "RightBracketingBar"                        2                    .                                    (        2        )            
This branch metric is then added to the accumulated path metric M(X(nxe2x88x921)). The accumulated path metric of the state X(n) is obtained according to:
M(X(n))=aug min X(n){M(X(nxe2x88x921))+dM(X(nxe2x88x921), X(n))}.xe2x80x83xe2x80x83(3)
In the accumulated path metric, the minimization is over those X(nxe2x88x921)""s that have a valid state transition to X(n). Since there are 8 valid transitions to each next state X(n), 8L different branch metrics need to be computed at each stage of the Viterbi trellis. The complexity of the Viterbi algorithm, which is dominated by branch metric computations, may thus be formidible when the number of channel taps L is large. For a 5-tap channel (i.e. L=5), 32,768 branch metrics may need to be computed at each stage of the Viterbi trellis.
Decision Feedback Sequence Estimation (DFSE) equalizers have thus been proposed to reduce computational complexity by reducing the number of branch metric computations at each stage of the trellis, and more particularly, by reducing the number of states in the trellis. DFSE equalizers are discussed, for example, by A. Duel-Hallen et al. in Delayed Decision-Feedback Sequence Estimation, IEEE Transactions on Communications, Vol. 37, No. 5, May, 1989, the disclosure of which is incorporated herein in its entirety by reference. In a DFSE equalizer L channel taps can be divided into LMLSE taps and LDFSE taps so that L=LMLSE+LDFSE. In other words, channel taps h(0) . . . h(LMLSExe2x88x921) are defined as LMLSE taps, and channel taps h(LMLSE) . . . h(Lxe2x88x921) are defined as LDFSE channel taps. The n-th stage of the trellis used for the DFSE algorithm has 8LMLSExe2x88x921 states, corresponding to vectors of the most recent LMLSExe2x88x921 symbols: XDFSE(n)=[s(nxe2x88x921), . . . , s(n-LMLSE+1)]. Furthermore, at time nxe2x88x921 there is a stored path history including an n-tuple of 8PSK symbols from time xe2x80x9c0xe2x80x9d to time xe2x80x9cnxe2x88x921xe2x80x9d associated with each DFSE state. The DFSE algorithm operates similarly to the Viterbi algorithm. The DFSE algorithm operates on the DFSE trellis, and each branch metric is computed as follows:                               dM          ⁡                      (                                          X                ⁡                                  (                                      n                    -                    1                                    )                                            ,                              X                ⁡                                  (                  n                  )                                                      )                          =                                            "LeftBracketingBar"                                                r                  ⁡                                      (                    n                    )                                                  -                                                      ∑                                          i                      =                      0                                                              LMLSE                      -                      1                                                        ⁢                                      xe2x80x83                                    ⁢                                                            h                      ⁡                                              (                        i                        )                                                              ⁢                                          s                      ⁡                                              (                                                  n                          -                          i                                                )                                                                                            -                                                      ∑                                          i                      =                      LMLSE                                                              L                      -                      1                                                        ⁢                                      xe2x80x83                                    ⁢                                                            h                      ⁡                                              (                        i                        )                                                              ⁢                                                                  s                        _                                            ⁡                                              (                                                  n                          -                          i                                                )                                                                                                        "RightBracketingBar"                        2                    .                                    (        4        )            
In equation 4, the symbols (s(nxe2x88x921), . . . , s(n-LMLSE+1)) are obtained from the hypothesized state at time nxe2x88x921 and the current state at time n, i.e. from (X(nxe2x88x921), X(n)). The symbols ({overscore (s)}(n-LMLSE), . . . , {overscore (s)}(n-L+1)) are obtained from the path history associated with the previous state X(nxe2x88x921).
The number of states at each stage of the DFSE trellis is 8LMLSExe2x88x921, and 8 branches fan out from each state, so that 8LMLSE branch metrics may need to be computed at each stage of the DFSE trellis. With a 5-tap channel and with 2 MLSE taps (LMLSE=2), 64 branch metrics need to be computed at each stage of the DFSE trellis (compared with 32,768 branch metrics in the Viterbi trellis).
Notwithstanding the DFSE algorithm discussed above, there continues to exist a need in the art for further improved DFSE equalizers having reduced computational complexity.
According to the present invention, methods, receivers, and equalizers can calculate a common portion of branch metrics that is common to each of the branch metrics from the previous hypothesized state to each of the current possible states, and difference variables can be calculated representing a difference between the common portion of the branch metrics and each of the branch metrics from the previous hypothesized trellis state to each of the current possible states. The common portion of the branch metrics and each of the difference variables can then be combined to provide a respective metric for each of the possible current states. A total number of operations used to calculate metrics in a DFSE equalizer can thus be reduced thereby reducing complexity and/or increasing performance of methods, receivers, and equalizers according to the present invention. A digital signal processor used to implement an equalizer according to the present invention, for example, can compute the metrics more efficiently, and the increased efficiency can allow use of a less complex digital signal processor, and/or an increase in the speed at which the metrics are calculated.
Operations of the present invention can be implemented, for example, using a DFSE equalizer having two MLSE taps and providing 8-PSK modulation so that there are 8 possible states at each stage of the trellis. While two MLSE taps are discussed for the purposes of illustration, any number of MLSE taps can be used according to the present invention. Moreover, the combining of the common portion of the branch metrics and each of the difference variables can include providing eight respective metrics each of which is associated with a respective one of the eight possible current states. In addition, calculating the difference variables can include calculating four difference variables. Combining the common portion of the branch metrics and each of the difference variables can thus include adding each of the four difference variables to the common portion of the branch metrics to provide four of the metrics, and subtracting each of the four difference variables from the common portion of the branch metrics to provide another four of the metrics. In other words, four difference variables can each be added to and subtracted from the common portion of the branch metrics to provide eight respective metrics.
More particularly, calculating the difference variables can include calculating a first intermediate variable as twice a product of a conjugate of a primary channel tap and a difference between a sampled signal and a summation of non-primary channel taps and hypothesized symbols corresponding to the non-primary channel taps. A second intermediate variable can be calculated as a product of the first intermediate variable and exe2x88x92jxcfx80/4. A first one of the difference variables can be calculated as a real portion of the first intermediate variable, a second one of the difference variables can be calculated as an imaginary portion of the first intermediate variable, a third one of the difference variables can be calculated as a real portion of the second intermediate variable, and a fourth one of the difference variables can be calculated as an imaginary portion of the second intermediate variable.
Methods, receivers, and equalizers according to the present invention can thus reduce computational complexity associated with calculating metrics at each stage of a DFSE trellis thereby increasing efficiency.